Examples of conventional communication system switches include private branch exchanges (PBXs) and automatic call distribution (ACD) systems. As is well known, such switches may be controlled via computer-telephony integration (CTI) applications running on computers internal or external to the corresponding enterprise communication platform. CTI applications are commonly used in call centers and other enterprise call processing contexts.
An important function of CTI applications in these contexts involves the monitoring of switch resources. For example, most CTI applications require information regarding dynamic telephony activity for specific enterprise communication platform resources, such as agent terminals and other system endpoints, ACD devices, etc. The CTI applications use this information to make most effective use of the monitored resources in processing incoming and outgoing calls. Current CTI application programming interfaces (APIs), such as Telephony Services Application Programming Interface (TSAPI), Java Telephony Application Programming Interface (JTAPI) and Telephony Application Program Interface (TAPI), and their associated protocols each provide a mechanism for a CTI application to request notification of any activity involving a particular telephony resource.
In a typical conventional resource monitoring arrangement, the CTI application first sets up a communication session with an enterprise communication platform, often through a corresponding gateway device. As part of this session, the CTI application supplies any required authentication information. The CTI application then sends a series of resource monitor requests, generally one request per resource on the targeted platform. Activity events involving the monitored telephony resources are communicated to the waiting application within the established session.
Unfortunately, there are a number of significant problems with the conventional resource monitoring approach described above. For example, the above-noted example CTI APIs typically require that resource monitoring requests be issued one at a time, resulting in an unduly complex arrangement when there are a large number of resources to monitor. Moreover, since each CTI application is responsible for generating its own individual resource monitoring requests, redundant lists of monitored resources may be present in different CTI applications, or one or more of the lists may be inconsistent with the actual resources present at any given time in the enterprise communication platform. Yet another problem is that the individual resource monitoring requests typically have to be regenerated each time a given CTI application is restarted, which can result in excessive execution time. As a more particular example, a CTI application running on a client machine may crash, in which case existing monitoring arrangements will be terminated and must be reestablished, at the cost of additional execution time.
Existing API function calls fail to provide an adequate solution to one or more of the problems identified above. These example function calls include the Genesys T-Library API call TRegisterAll, described in the T-Server 5.1.5 Developer's Guide, Chapter 3, “Feature Requests,” p. 85, which registers a CTI application to receive events regarding all telephony “objects” associated with a given CTI link, and the JAIN™ Call Control (JCC) API call CreateEventFilterAddress*( ), described at http://java.sun.com/products/jain, which allows the specification of event filters.
Other similarly-deficient techniques are described in, for example, ECMA 269, Services for Computer Supported Telecommunications (CSTA) Phase III, Fourth Edition, June, 2000, http://www.ecma.ch, Sections 6.1.3.4.3, 6.1.3.4.5 and 6.1.3.6. See also ISO/IEC 18051:2000(E) International Standard, Information technology—Telecommunications and information exchange between systems—Services for Computer Supported Telecommunications Applications (CSTA) Phase III, Jul. 15, 2000.
As is apparent from the foregoing, a need exists for an improved approach to monitoring of switch resources via CTI applications or other monitoring mechanisms.